1. Field
Embodiments of the disclosure generally relate to systems and methods for organizing a collection of data stored in a computer system, and more particularly to managing and improving database and resource performance.
2. Description of the Related Art
Collections of data can be stored in a variety of ways on a computer system. For example, the collection of data may be stored as a database such as, e.g., a relational database. An advantage of a relational database is the ability to extract data from the database using intuitive Structured Query Language (SQL) statements. Business professionals and data analysts can therefore access a relational database without having specialized programming skills.
A database management system (DBMS) may provide one or more indexes that can improve the speed or efficiency of data access or retrieval operations from the database. An index can be organized as a data structure such as, e.g., a tree, a hash, a bitmap, a linked list, and so forth. For example, an index for a relational database may be a data structure (e.g., a B-tree) that organizes one or more columns of a database table in a specific order and provides pointers to database values stored in specific columns or combinations of columns in a table.
The problem of finding an efficient or optimal index configuration (e.g., a set of indexes) for a target database is computationally challenging. For example, a database may have hundreds or thousands of tables and there may be thousands (or more) SQL statements for the database. The number of possible index configurations for such a database can be enormous, and searching for an index configuration that provides desired benefits (e.g., in terms of database performance, resource usage, etc.) can be time and resource intensive.